Repository navigation
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
I'll fix CI failures and address comments from users with write access that start with 'Devin'.
|
PR SummaryLow Risk Overview In Reviewed by Cursor Bugbot for commit 9cdc76b. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Moves assertSeiloadRun ahead of assertChainLive in runSeiload, so seiload's pod status and log are read right after the Job completes instead of after the follower catch-up wait (up to 5m), during which Karpenter can reclaim the node. Both helpers report through t.Errorf and neither depends on the other's result, so only the timing changes; I found nothing blocking, and codex, the only prior reading, found nothing, which agrees with this review.
Non-blocking
- This shrinks the race but does not remove it.
waitJobpolls every 10s, so the log read can still come some seconds after the pod reaches Succeeded, and a node Karpenter consolidates in that window still loses the log. To make the summary durable, have seiload write it to/dev/termination-log, where it survives inpod.Status.ContainerStatuses[].State.Terminated.Message, or ship it some other way that does not depend on the kubelet still serving logs.
seidroid review · decision approve · session 5cf6a32304764fe1911a2fb76ae31512 · turn resp_claude_b5dc958abffd2efa74373cfebc2dd408 · item 4854ae63a810573696ef1b90d3e4e97b
Findings: 0 blocking | 1 non-blocking | 0 posted inline
|
Agreed, this narrows the race rather than closing it. In the failing run the node was tainted about a minute after the pod went |
Summary
Fixes a regression from #600. In
runSeiload,assertSeiloadRun(seiload pod status + log summary) now runs beforeassertChainLiveinstead of after it:Why: #600 lets
assertChainLivewait up tofollowerCatchUpTimeout(5m) for followers. In the first nightly with it (nightly-harness-manual-1791341439), the catch-up worked: saturationrpc-1went from about 230 blocks behind to caught up within about 3m. But the log read that came after it failed:Prometheus shows the seiload pod went
Succeededaround 03:05. By 03:06 its nodeip-10-60-17-209carriedkarpenter.sh/disruptedandnode.kubernetes.io/not-ready, meaning Karpenter consolidated the emptied node and the kubelet serving the log was gone. Before #600 the log was read seconds after the Job finished, ahead of consolidation. A retry wouldn't help once the node is gone, so this change moves the read back to right afterrunJob.The assertions are independent
t.Errorfchecks, so swapping them changes only when each one runs, not what fails.Validation:
go vet -tags integration ./test/integration/,gofmt, and diff-scopedgolangci-lintare clean. Not verified on a nightly run yet. After merge, the platformintegration-harnesspin needs bumping again.Link to Devin session: https://app.devin.ai/sessions/046d3f7315594005af4d7040d641c18f
Open in Devin Desktop: https://app.devin.ai/desktop/session/046d3f7315594005af4d7040d641c18f?variant=devin
Requested by: @bdchatham